package com.example.book.service;

import com.example.book.constant.Constants;
import com.example.book.mapper.UserMapper;
import com.example.book.model.UserInfo;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    //账号密码不是固定的了，就得从数据库中
    public Boolean checkUserAndPassword(String userName, String password, HttpSession session) {
        //打印日志头打一个尾部打一个
        //账号密码为空时
        if (!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)) {
            return false;
        }
        //从数据库查询对应用户名的用户信息，并将结果存储在userInfo变量中，供后续验证密码等操作使用。
        //表示调用 userMapper 对象的 selectUser 方法，并传入参数 userName。
        //通过userMapper.selectUser(userName)来根据用户名查询用户信息。
        // 这一步已经通过用户名获取了对应的UserInfo对象，所以此时如果userInfo存在，说明数据库中存在该用户名的记录。
        UserInfo userInfo = userMapper.selectUser(userName);
        if (userInfo == null) {
            return false;
        }
        //检验密码是否相等
        if (password.equals(userInfo.getPassword())) {
            //将 userName 存入 session
            //当用户登录成功后，将用户名存入session，之后的请求可以通过session.getAttribute("userName")来获取
            session.setAttribute(Constants.SESSION_USER_KEY, userName);
            return true;
        }
        return false;
    }


}
